{"version":3,"sources":["webpack://mobiusforms/webpack/bootstrap","webpack://mobiusforms/./src/ts/add-ins/uiActions.ts","webpack://mobiusforms/./src/scss/bs4.scss","webpack://mobiusforms/./src/ts/main.ts","webpack://mobiusforms/./src/ts/collect-fields/manual.ts","webpack://mobiusforms/./src/ts/collect-fields/auto.ts","webpack://mobiusforms/./src/ts/add-ins/recaptcha.ts"],"names":[],"mappings":"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","file":"app-bundle.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1);\n","// rename to UiActions\r\nexport class UiActions {\r\n showOneAlert(wrapper: JQuery, showId: string) {\r\n wrapper.find('.alert').hide();\r\n if (showId !== '') {\r\n wrapper.find('#' + showId).show();\r\n }\r\n }\r\n\r\n disableInputs(wrapper: JQuery, state: boolean) {\r\n wrapper.toggleClass('disable', state)\r\n wrapper.find(':input').prop('disabled', state);\r\n }\r\n\r\n attachFieldValidateOnBlur() {\r\n // skif if validation is already enabled\r\n if ($(this).data('alreadyRun')) return;\r\n\r\n // not yet enabled, let's enable and remember...\r\n ($(this) as any).smkValidate();\r\n $(this).data('alreadyRun', true);\r\n }\r\n}","// extracted by mini-css-extract-plugin","declare let $2sxc: any;\r\n\r\nimport { UiActions } from './add-ins/uiActions';\r\nimport { CollectFieldsManual } from './collect-fields/manual';\r\nimport { CollectFieldsAutomatic } from './collect-fields/auto';\r\nimport { Recaptcha } from './add-ins/recaptcha';\r\nexport class App {\r\n helperFunc = new UiActions();\r\n collectFieldsManual = new CollectFieldsManual();\r\n collectFieldsAutomatic = new CollectFieldsAutomatic();\r\n recaptcha = new Recaptcha();\r\n moduleWrapper: JQuery;\r\n alreadyInit = false;\r\n\r\n c = {\r\n clsWrp: 'app-jqfs-wrapper',\r\n clsForm: 'app-jqfs-form',\r\n };\r\n\r\n constructor(\r\n moduleId: number,\r\n ) {\r\n // disable validate on the global asp.net form, to not interfere with the contact-form\r\n $('form').attr('novalidate', '');\r\n this.moduleWrapper = $(`.DnnModule-${moduleId}`);\r\n }\r\n\r\n public initialize() {\r\n const wrapper = this.moduleWrapper;\r\n // attach validation to enable as soon as we blur \r\n wrapper.on('blur', ':input', this.helperFunc.attachFieldValidateOnBlur);\r\n\r\n wrapper.each((i, item) => {\r\n // prevent dupl execution\r\n if (this.alreadyInit)\r\n return;\r\n\r\n const wrap = $(item);\r\n wrap.find('#sendFormWithApi').on('click', (evt: JQueryEventObject) => this.send(evt)); // handle click event\r\n\r\n this.alreadyInit = true;\r\n });\r\n }\r\n\r\n public send(event: JQueryEventObject) {\r\n const btn = event.currentTarget;\r\n const sxc = $2sxc(btn);\r\n const wrapper = this.moduleWrapper;\r\n\r\n // clear all alerts\r\n this.helperFunc.showOneAlert(wrapper, '');\r\n\r\n // Validate form\r\n if (!(wrapper as any).smkValidate())\r\n return this.helperFunc.showOneAlert(wrapper, 'msgIncomplete');\r\n\r\n // Do Recaptcha test, show alert & fail if required and not complete\r\n const recap = this.recaptcha.check(wrapper);\r\n if (!recap)\r\n return this.helperFunc.showOneAlert(wrapper, 'msgRecap');\r\n\r\n const mailchimp = wrapper.find('.app-jqfs-wrapper').hasClass('app-jqfs-mailchimp-wrapper');\r\n\r\n // get data \r\n // alternative example with manual build, but we prefer automatic\r\n // let data;\r\n // data = this.collectFieldsManual.collect(wrapper);\r\n this.collectFieldsAutomatic.collect(wrapper).then((data: any) => {\r\n const ws = wrapper.find('.app-jqfs-wrapper').data('webservice'); // should be \"Form/ProcessForm\" or a custom override\r\n data.Recaptcha = recap;\r\n data.MailChimp = mailchimp;\r\n\r\n // submission\r\n this.helperFunc.disableInputs(wrapper, true);\r\n this.helperFunc.showOneAlert(wrapper, 'msgSending'); // show \"sending...\"\r\n\r\n sxc.webApi.post(ws, {}, data, true)\r\n .success(() => {\r\n const msg = mailchimp ? 'msgNewsletterSuccess' : 'msgOk';\r\n this.helperFunc.showOneAlert(wrapper, msg);\r\n // $(btn).hide();\r\n })\r\n .error(() => {\r\n const msg = mailchimp ? 'msgNewsletterFailed' : 'msgError';\r\n this.helperFunc.showOneAlert(wrapper, msg);\r\n this.helperFunc.disableInputs(wrapper, false);\r\n });\r\n });\r\n }\r\n}","/*\r\n This is an example of collecting the fields manually (instead of automatically). \r\n You would modify this file list all the fields you want, which allows you to use\r\n a different naming schema than the default. \r\n This is an advanced use case, and included so you could do this, but you usually won't want to.\r\n*/\r\nexport class CollectFieldsManual {\r\n // automatically build the send-object with all properties, \r\n // based on all form-fields which have a item-property=\"\"\r\n collect(wrapper: JQuery) {\r\n const data: any = {\r\n Subject: wrapper.find('#Subject'),\r\n Message: wrapper.find('#Message'),\r\n SenderName: wrapper.find('#Sendername'),\r\n SenderMail: wrapper.find('#Sendermail')\r\n };\r\n\r\n for (let prop in data) {\r\n if (data.hasOwnProperty(prop)) {\r\n data[prop] = data[prop].val();\r\n }\r\n }\r\n\r\n return data;\r\n }\r\n}","export class CollectFieldsAutomatic {\r\n // automatically build the send-object with all properties, \r\n // based on all form-fields which have a item-property=\"\"\r\n collect(wrapper: JQuery) {\r\n let data: any = {\r\n Files: []\r\n };\r\n const fields = wrapper.find(':input').not('button');\r\n const promises = fields.map((i, field) => add(i, field));\r\n \r\n function add(i: number, element: any) {\r\n element = $(element);\r\n // get the property name from special-attribut, name OR id\r\n const propName = element.attr('name') || element.attr('id');\r\n\r\n if (!propName)\r\n return;\r\n\r\n // extract data from file fields\r\n if (element.attr('type') && element.attr('type').toLowerCase() == 'file') {\r\n const deferred = $.Deferred();\r\n const file = element.get(0).files[0];\r\n if (!file)\r\n return;\r\n\r\n const reader = new FileReader();\r\n\r\n reader.addEventListener('load', function () {\r\n data.Files.push({\r\n Encoded: reader.result,\r\n Name: file.name,\r\n Field: propName\r\n });\r\n deferred.resolve();\r\n }, false);\r\n reader.readAsDataURL(file);\r\n\r\n return deferred.promise();\r\n\r\n } else if (element.attr('type') && element.attr('type').toLowerCase() == 'radio') { // For radio fields get checked values\r\n if (element.is(':checked')) {\r\n data[propName] = element.val();\r\n }\r\n } else { // For all standard fields, set value directly\r\n data[propName] = element.val();\r\n }\r\n }\r\n\r\n return $.when.apply($, promises).then(() => {\r\n return data;\r\n });\r\n }\r\n}","declare let grecaptcha: any;\r\n\r\nimport { UiActions } from './uiActions';\r\n\r\nexport class Recaptcha {\r\n helperFunc = new UiActions();\r\n\r\n c = {\r\n recapId: \"recapId\",\r\n clsRecap: \"app-jqfs-recaptcha\",\r\n clsRecapWrap: \"app-recaptcha-wrapper\"\r\n };\r\n\r\n constructor() { }\r\n\r\n /*\r\n Initialize Recaptcha and create a Recapcha Checkbox below the Formfields \r\n */\r\n init(wrapper: JQuery) {\r\n const recap = wrapper.find(this.c.clsRecap);\r\n\r\n if(!isNaN(wrapper.data(this.c.recapId))) {\r\n return;\r\n }\r\n\r\n const id = grecaptcha.render(recap, {\r\n 'sitekey' : recap.data(\"sitekey\"),\r\n 'size' : 'normal'\r\n });\r\n\r\n wrapper.data(this.c.recapId, id); // remember for later use \r\n }\r\n\r\n\r\n \r\n /* \r\n Checks if a recaptcha is implemented in the current Form\r\n */\r\n check(wrapper: JQuery) {\r\n const recap = wrapper.find(\".\" + this.c.clsRecap);\r\n // if no recaptcha found, probably ok\r\n if(recap.length === 0) {\r\n return true;\r\n }\r\n\r\n // if many found, probably not ok\r\n if(recap.length !== 1) {\r\n throw \"recaptcha not found\";\r\n }\r\n\r\n // return google response for the recap\r\n const res = grecaptcha.getResponse(); // null if failed, something cryptic if ok\r\n\r\n return res || false; \r\n }\r\n}"],"sourceRoot":""}